約 4,110,954 件
https://w.atwiki.jp/nkym_memo/pages/185.html
インストール Ubuntu(12.04で確認) ドライバ・IDEのインストール $ sudo apt-get install arduino パーミッションの変更 $ sudo usermod -a -G dialout ログインユーザー名 $ sudo chmod a+rw /dev/ttyACM0 /dev/ttyACM0かどうかはコマンドdmesgで確認する。 参考URL http //blog.markloiseau.com/2012/05/install-arduino-ubuntu/ emacsで開発 arduino-mode $ cd .emacs.d $ git clone git //github.com/bookest/arduino-mode.git .emacsに追記 (add-to-list load-path "~/.emacs.d/arduino-mode/") (load "arduino-mode") (setq auto-mode-alist (cons ("\\.pde$" . arduino-mode) auto-mode-alist)) (途中)
https://w.atwiki.jp/soscomp/pages/162.html
Arduinoとは 種別 Hardware IDE 用途 AVRマイコン開発の省力化 ライセンス GPLとその他 AVRマイコンを手軽に使えるように工夫したボードと開発環境のセット。 Made in Italyなオープンハードウェアです。 今時流行りのフィジカルコンピューティングとやらで、どちらかというと昔ながらの工学系の学生よりは芸術系やヒューマンインターフェイス系の学生に支持されてるもよう。 マイコンに関する知識が無くても、付属のライブラリを使えばLEDの点滅の制御からLCDへの文字の表示までたいがいのことができちゃうようです。 このあたり、RubyやPythonと思想が似通ってる。 対象者 以下のような人にお勧めです。 情報システム学科の学生Cライクな簡単なプログラムでマイコンが制御できます 情報知能学科の学生画面の外に自分の好きなUIを作れます 情報メディア学科の学生アート系の作品で、外界の変化を表示に反映するような作品が作れます。 機械情報学科の学生釈迦に説法ですねわかります ガンスリ厨おまいらの大好きなイタリアの匂いがします。 どこで売ってんの? スイッチサイエンス通販ページ Arduino Duemilanove - いちごりなっくす通販ページ 購入する際はとりあえず、Arduino Duemilanoveを選択しておくといいでしょう。 DuemilanoveはDiecimilaの後継機なので、Diecimila向けに書かれたスケッチやチュートリアルがほとんどそのまま流用可能です。 用意するもの スイッチサイエンスで1個購入してみたのですが、本体以外何も入っていないため、以下のものが必要。 全部大須の海外通商あたりで買える。 USBケーブル(A-Bタイプ)プリンタなどの接続で使われることが多いタイプ 5Vの電源(LaFoneraの電源がちょうど挿せる)いらなくなった携帯電話の充電器のコネクタを丸型コネクタに交換することで自作可能 入出力に繋ぐもの(LED、スイッチ等)ボード上にLEDが載っているため何も繋がなくてもとりあえずテストは可能 チュートリアル スタパ齋藤の「週刊スタパトロニクスmobile」 Arduinoでマイコンしよう!! スタパ齋藤の「週刊スタパトロニクスmobile」 もっと使うゼ!! Arduino!! Arduinoを使った作品例 http //jp.makezine.com/blog/arduino/ http //japanese.engadget.com/tag/Arduino/ LaFoneraとのタイアップ ArduinoはTTLレベルのシリアルポートを持っています。 LaFoneraも同じくTTLレベルのシリアルポートを持っているので、両者をシリアルで接続して簡単なプログラムを書いてやれば、Wi-Fi経由でArduinoにアクセスできます。 無線LANラジコンとか作れそう。(それくらいしか思い浮かばないあたりがイタい 参考サイト Arduino - Wikipedia Arduino Diecimila を使う Arduino - マイクロファン ラボ Arduino日本語リファレンス v0.4 名前 コメント このページへのアクセス数 total - today - yesterday - このページのタグ一覧 AVR Arduino 組み込み
https://w.atwiki.jp/ecchutoyama/pages/17.html
Arduinoをつかってロボットを作る。 Arduinoへの道 秋月電子のAVR基板 モータコントロール RCサーボモータ制御 USBケーブルの接続
https://w.atwiki.jp/shiitakeo/pages/33.html
UDP Example - Ethernet - UDPSendRecieveString にサンプルがある.MacアドレスとIPアドレスだけ自分で使うのにしてやる. 付属のP5用サンプルと通信ができる. ArduinoISP IDEについてるサンプルでは,UNOを使ってブートローダ書き込めないので注意. 参考 http //arduino.cc/en/Tutorial/ArduinoISP TLC5940 TLC5940ライブラリを使う. 秋月のフルカラーLED使うときには,1.7~2.4kΩで調整する.より明るくしたければ単色で使うのか,混色で使うのかで抵抗を変える. setAllDC関数を使う LEDの輝度を調節する機能なんだけどふつうに宣言しただけだと関数が見つからないと言われるので, ヘッダファイルを見ると,tlcsetting.hみたいな感じのファイルで,VPRG_ENABLEDを1にしてやる. .inoファイルをVimで開く.SyntaxHighlightを機能させる. //vimrcで au BufNewFile,BufRead *.ino setf arduino
https://w.atwiki.jp/arduino/pages/29.html
温度センサー LM61CIZ http //akizukidenshi.com/catalog/g/gI-02726/ 4つで200円の温度センサー。 ■汎用の高精度IC温度センサーです ■測定範囲:−30℃〜100℃ ■温度係数:+10mV/℃ ■動作電圧範囲:+2.7〜+10V ■出力インピーダンス:800Ω ・Vo=(+10mV/℃×T℃)+600mV +100℃/+1600mV +85℃/+1450mV +25℃/+850mV 0℃/+600mV −25℃/+350mV −30℃/+300mV 単純な温度取得 imageプラグインエラー ご指定のURLはサポートしていません。png, jpg, gif などの画像URLを指定してください。 int ledPin = 13; int templPin = 5; void setup() { analogReference(INTERNAL); Serial.begin(19200); } void loop() { int val; double volt; double templ; val = analogRead(templPin); // 0-1023 / 1.1Vで1024になる volt = 1.1*val/1024.0; templ = (volt-0.6)*100.0; // 10mV=1c Serial.print(val); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); delay(1000); } 複数回データを取得して平均する int ledPin = 13; int templPin = 5; void setup() { analogReference(INTERNAL); Serial.begin(19200); } #define SAMPLING_COUNT 30 void loop() { int val; int i; double volt; double templ; val = 0; for(i=0; i SAMPLING_COUNT; i++){ val += analogRead(templPin); delay(10); } val = val/SAMPLING_COUNT; volt = 1.1*val/1024.0; templ = (volt-0.6)*100.0; // 10mV=1c Serial.print(val); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); delay(700); } ブレが小さくなる。 LM35DZ http //akizukidenshi.com/catalog/g/gI-00116/ 高精度IC温度センサ LM35DZ 0〜100℃ [LM35DZ] 通販コード I-00116 発売日 2001/12/12 メーカー NATIONAL SEMICONDUCTOR 摂氏(℃)に比例した電圧出力 ◎例: 0℃→0V 20℃→200mV ◆測定温度範囲:0〜100℃ ◆精度:±1℃ ◆温度係数:10.0mV/℃ ◆電源電圧:DC4V〜20V 低消費電流:60μA ◆低出力インピーダンス:0.1Ω ◆T0-92パッケージ ピン配置はLM61CIZと同じだが出力全圧が違う。 LM61CIZ vs LM35DZ void setup() { analogReference(INTERNAL); Serial.begin(115200); } void task_LM61CIZ() { static int pin = 5; static int sum = 0; static int samples = 0; double volt; double templ; sum += analogRead(pin); samples += 1; if(30 samples){ volt = 1.1*sum/samples/1024.0; templ = (volt-0.6)*100.0; // 10mV=1c Serial.print("LM61CIZ "); Serial.print(sum); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); sum = 0; samples = 0; } } void task_LM35DZ() { static int pin = 4; static int sum = 0; static int samples = 0; double volt; double templ; sum += analogRead(pin); samples += 1; if(30 samples){ volt = 1.1*sum/samples/1024.0; templ = volt*100.0; // 10mV=1c Serial.print("LM35DZ "); Serial.print(sum); Serial.print(" / "); Serial.print(volt); Serial.print("V / "); Serial.print(templ); Serial.println("C"); sum = 0; samples = 0; } } void loop() { task_LM61CIZ(); task_LM35DZ(); delay(100); } LM61CIZ 27723 / 0.96V / 36.07C LM35DZ 10155 / 0.35V / 35.19C LM61CIZ 27722 / 0.96V / 36.06C LM35DZ 10156 / 0.35V / 35.19C LM61CIZ 27721 / 0.96V / 36.06C LM35DZ 10153 / 0.35V / 35.18C LM61CIZ 27728 / 0.96V / 36.08C LM35DZ 10158 / 0.35V / 35.20C LM61CIZ 27721 / 0.96V / 36.06C LM35DZ 10148 / 0.35V / 35.17C LM61CIZ 27724 / 0.96V / 36.07C LM35DZ 10155 / 0.35V / 35.19C LM61CIZ 27726 / 0.96V / 36.08C LM35DZ 10161 / 0.35V / 35.21C 参考URL http //nekosan0.bake-neko.net/structure_analog_in.html http //www.musashinodenpa.com/arduino/ref/index.php?f=0 pos=1949
https://w.atwiki.jp/hobata/pages/18.html
neko ネコが液晶画面を走り回るデモです。 Arduinoとの接続時の回路図(手書き)とソースは、下のリンクからどうぞ。 BMP085気圧センサ I2Cで制御する気圧・温度センサを動作させました。 3.3V系のArduinoで動作します。 サンプルソースは、(これも)下のリンクからどうぞ。 Wind Chime DC12Vファンからの風で音を鳴らします。 あまりにも、「そのまま」な構造なので、一部の技術志向の方からは、「ドン引き」されてしまった一品です。 アルミ管からの音が魅力の全てです。 風量調整のためにAVRマイコンを使っていますが、プログラムは、大したものではありませんのでUPの予定ナシです。 -
https://w.atwiki.jp/arduino/pages/45.html
8年も前のPHS用のカメラユニットTrevaとArduinoをつなぎます。 参考サイト→http //www.paken.org/aaf/treva/ 画像サイズは96x72。1画素2byteなので1枚の写真で96x72x2=13824byte. 115200bpsのシリアル通信で転送するとしても115200/8=14400なので1秒に1枚が限界か。 #define TREVA_CLK 12 #define TREVA_DATA 11 #define LED 13 #define DEBUGPIN 14 #define TREVA_DELAY() __asm("nop"); //#define TREVA_DELAY() __asm("nop");__asm("nop");__asm("nop");__asm("nop");__asm("nop"); //#define TREVA_DELAY() delayMicroseconds(3) unsigned char treva_state = 0; unsigned char treva_count = 0; #define TREVA_COLSx2 (96*2) #define TREVA_ROWS 72 unsigned char treva_row = 0; unsigned char treva_col = 0; unsigned char treva_bit = 0; char treva_byte = 0; void setup() { pinMode(LED, OUTPUT); pinMode(TREVA_CLK, OUTPUT); pinMode(TREVA_DATA, INPUT); Serial.begin(115200); } // http //www.paken.org/aaf/treva/ void treva_loop() { digitalWrite(TREVA_CLK, HIGH); TREVA_DELAY(); char treva_data = digitalRead(TREVA_DATA); digitalWrite(TREVA_CLK, LOW); TREVA_DELAY(); switch(treva_state){ case 0 // wait "1" 100 bits. if(treva_data==1){ treva_count++; if(treva_count==100){ treva_count = 0; treva_state = 1; } }else{ treva_count = 0; } break; case 1 // wait "0" 65 bits. if(treva_data==0){ treva_count++; if(treva_count==65){ treva_count = 0; treva_state = 2; } }else{ treva_count = 0; } break; case 2 // skip 16 bits. treva_count++; if(treva_count==16){ treva_count = 0; treva_byte = 0x00; treva_row = 0; treva_col = 0; treva_bit = 0; treva_state = 3; } break; case 3 // read 96*72*16bit = 110592bit = 13824bytes treva_byte |= (treva_data (7-treva_bit)); treva_bit++; if(treva_bit==8){ send_treva_byte(treva_row, treva_col, treva_byte); treva_byte = 0x00; treva_bit = 0; treva_col++; if(treva_col==TREVA_COLSx2){ treva_col = 0; treva_row++; if(treva_row==TREVA_ROWS){ treva_state = 0; } } } break; } } void send_treva_byte(unsigned char row, unsigned char col, char b) { if(col==0){ Serial.print("line "); Serial.print((int)row); Serial.print(" "); } unsigned char v = b; if(v 0x10){ Serial.print("0"); } Serial.print(v, HEX); Serial.print(" "); if(col==TREVA_COLSx2-1){ Serial.println(); digitalWrite(LED, row%2); if(row==TREVA_ROWS-1){ Serial.println("*******************************************"); } } } void loop() { treva_loop(); } treva.rb printf( "P6\n" ); cols = 96 rows = 72 printf( "#{cols} #{rows} 255 " ); img = [] $stdin.each do |line| if line =~ /^line (\d+) ((.. ){192})$/ index = $1.to_i data = $2.split(" ") data.each do |d| img d.to_i(16) end end end rows.times do |i| cols.times do |j| p = (i*cols+j)*2; y = img[p+1]; if j%2==0 v = img[p]; u = img[p+2]; else v = img[p-2]; u = img[p]; end u = u - 128.0; v = v - 128.0; red = u + y; green = 0.98*y - 0.53*u - 0.19*v; blue = v + y; if red 255 red = 255 end if red 0 red = 0 end if green 255 green = 255 end if green 0 green = 0 end if blue 255 blue = 255 end if blue 0 blue = 0 end printf("%c", red) printf("%c", green) printf("%c", blue) end end
https://w.atwiki.jp/yana_lab/pages/17.html
Arduino関連 Arduinoは初心者に最もおすすめできるマイコンボードです. シンプルなプログラム(スケッチ)でいろいろなことができますし,資料が豊富です. 他のマイコンを使っているときでも,何か不具合があるときは,確認用に使用することもできます. 生産工学部機械工学科ではメカトロニクス演習の授業や応用プロジェクト演習の授業で使います. ここでは1例として,応用プロジェクト演習のピンポン玉仕分け装置関連の資料をまとめておきます. (Arduinoは教科書もわかりやすいWebサイトも充実しています.リファレンスも日本語でとても分かりやすいので,細かい点は自分で調べてください.) センサによる計測 フォトセンサ(RPR-220)で計測するためのスケッチです. 回路は以下の図を参考にしてください. void setup() {//初期設定 Serial.begin(9600);//シリアル通信の設定 } void loop(){ int sensorValue = analogRead(A0);//A0につながったセンサの値を取得する Serial.println(sensorValue);//シリアル通信で測定値を送る delay(100); //100msごとに計測する } サーボモータの制御 次はサーボモータを制御してみましょう. 配線は以下を参考にしてください. #include Servo.h //サーボモーター用ライブラリを読み込み Servo myservo1; //サーボ用のオブジェクトを作成 void setup() { myservo1.attach(9); //デジタル9番ピンをサーボの角度命令出力ピンとして設定 } void loop() { myservo1.write(10); //サーボを動かす delay(1500); myservo1.write(100); //サーボを動かす delay(1500); } ボール仕分け装置 上記の2つのスケッチを組み合わせてピンポン玉の色に応じてボールを仕分けする装置を作ってみます. 下の例はサーボモータを2個使っています. #include Servo.h //サーボモーター用ライブラリを読み込み Servo myservo1,myservo2; //サーボ用のオブジェクトを作成 void setup() { myservo1.attach(9); //デジタル9番ピンをサーボの角度命令出力ピンとして設定 myservo2.attach(10); //デジタル10番ピンをサーボの角度命令出力ピンとして設定 Serial.begin(9600);//計測値確認用 シリアル通信 } void loop() { myservo1.write(30); //サーボを動かす(基準位置) myservo2.write(55); //サーボを動かす(基準位置) delay(1500); int sensorValue = analogRead(A0); //フォトセンサによる計測(白は値が小さい 黒は値が大きい) Serial.println(sensorValue); //測定値確認用 if (sensorValue 450){ //ゴルフボールのとき myservo1.write(10); //サーボを動かす(解放) myservo2.write(100); //サーボを動かす(解放) delay(1500); }else if(sensorValue 850){//ピンポン玉の時とき myservo1.write(100); //サーボを動かす(解放) myservo2.write(10); //サーボを動かす(解放) delay(1500); }else{//何もないとき myservo1.write(30); //サーボを動かす(基準位置) myservo2.write(55); //サーボを動かす(基準位置) delay(1500); } } うまくいけばこんな感じになります.(動画はピンポン玉とゴルフボールを仕分けしています.)
https://w.atwiki.jp/ayumikizuka/pages/33.html
過去の資料 2013.12.12 第1回Arduino勉強会 in ハコダテの資料(PDF/17.5MB) ……ArduinoインストールからLED点灯まで 2014.02.06 第2回Arduino勉強会 in ハコダテの資料(PDF/2.9MB) ……LEDの明るさを変えてみよう、プログラムの理解 Arduino勉強会 in ハコダテ Facebook ページ 2014.12.12 第1回Arduino勉強会 in ハコダテ 2014.02.06 第2回Arduino勉強会 in ハコダテ Arduino勉強会 in ハコダテ の公式生放送ページ ニコニコ生放送 http //com.nicovideo.jp/community/co2269930 ニコニコ動画、Twitter、Facebookにアカウントを持ってる方は見れます。 基本的に参加者は写しません。 total: - today: - yesterday: -
https://w.atwiki.jp/shimizunochikara/pages/15.html
はじめに ArduinoとXBeeとモーターシールドを使ってラジコンを作ろうと思う。ラジコンのソースコードは今後Arduinoを用いた動くおもちゃを作る際の動作確認に利用する事が出来る。また、XBeeによる無線通信とモーターの制御を組み合わせた最も基本的な工作のひとつであるため、ソースコードやノウハウを他の工作に生かす事ができると考える。 Arduino Tankの機能 無線により操作が可能 一本のスティックで操作が可能 スティックを倒した方向に進む(角度は無段階) スティックを倒した角度に比例してスピードが変化(1chにつき255段階) 超信地展開が可能(左右のキャタピラーを逆方向に回す事によりその場で回転) 車体側 車体側の機能 無線により値を受け取る事で動作 左右のキャタピラーがそれぞれ比例制御が可能(8bit-255段階) ハードウェアの構成 キャタピラー(タミヤ工作キット) ギアボックス(タミヤダブルギアボックス) シャーシ(タミヤユニバーサルプラスチック基盤) マイコン(Arduino Uno) モータードライバー(Ardumoto Arduinoのシールドの一種) 通信モジュール(XBee Series2) ハードウェアの説明 タミヤ工作キットのキャタピラー工作キットとダブルギアボックスを組み合わせて駆動系を作った。また、シャーシはタミヤユニバーサルプラスチック基盤で作った。マイコンはArduino Unoを用いており、モータードライバーにはArdumotoを利用している。また、ArduinoとXbeeはArduino → XBeeは分圧抵抗により電圧を落としている。XBee→Arduinoはそのまま入力を行っている。本来はロジックレベル変換レベル変換を行うべきであるが、現状で動作している。(XBeeに5Vを入力してしまうと壊れるので注意) ソフトウェアの説明 XBeeから3Byteのデータを受け取り、それを2系統の8bit出力と1bitの回転方向に変換し、Ardumotoに出力する事でモーターの制御を行っている。 スティックコントローラー側 スティックコントローラーの機能 スティックを倒した方向に応じて、2つのキャタピラー出力に変換し無線送信する スティックを押す事で超信地旋回するモードとしないモードに切り替わる(超信地旋回するモードの場合には緑LEDが点灯) 使用した部品 Arduino Fio XBee LiPoバッテリー アナログジョイスティック LED × 2(赤, 緑) ブレッドボード ハードウェアの説明 Arduinoのアナログ入力0, 1にジョイスティックのX軸とY軸を接続し、AD変換を行っている。また、D2ピンにボタンを接続し、スイッチが押された場合はGNDレベルに落ち、割り込みが発生するようになっている。D2ピンとスイッチに関しては 10KΩのプルアップ抵抗が取り付けられている。またD3とD5ピンにLEDが取り付けられており、PWMにより明るさの調整が可能になっている。 ソフトウェアの説明 XY座標により入力されるデータを2つのモーター出力に変換している。変換のために極座標に飛ばし、角度θにより左右のモーター出力の係数を出力する関数を記述し、それをベクトルの大きさRと掛け合わせる事でモーター出力を得ている。またスイッチによりモードの切り替えを行い、モード0(超信地旋回あり)とモード1(超信地旋回しない)で別の関数を呼び出している。データは現在100ms毎に送信を行っている。チャタリング対策に関してもソフトウェア的に行っている。一旦ボタンが押された場合は500ms割り込みを無視するように設定されている。 実験 Arduino Tank Ver0.1と合わせて動作実験を行い、意図した通りに動作している事を確認した。ただし、通信エラーが発生する事がある。通信エラーはPCの近く等電磁波が発生していると考えられる場所、および走っている途中で発生している。現在はデータの送信周期は100msになっているが、遅くしすぎるとレスポンスが悪く、速くしすぎると通信エラーが頻発する。 今後の課題 通信モジュールのテスト(どういった場合にエラーが発生するか) 一定時間データが来ない場合に停止するような実装(車体側で一定時間データが来ない場合タイマー割り込みにより出力を0にする実装) 最終的にこうなった(苦笑)